home *** CD-ROM | disk | FTP | other *** search
- Release Notes
- NOS for TCP/IP
- Version KA9Q 921229/PA0GRI 920730v2.0m/N1BEE 921225v0.85-beta
-
- by Mike Bilow, N1BEE
- 25 December 1992
-
- AX.25: N1BEE @ WA1PHY.#EMA.MA.USA.NA
- Amprnet: n1bee@switch.w1cg-9.ampr.org
- Internet: mikebw@ids.net
- CompuServe: >INTERNET:mikebw@ids.net
- Fidonet: MIKE BILOW, 1:323/120.1
-
- Note: The NOS "info" command now displays the date and time of compilation.
- Please include this is in any correspondence or bugs reports.
-
-
- 1. Distribution Issues
-
- These notes are directed to users of previous versions of N1BEE NOS
- making the conversion to this one. The last main release was 910921v0.72.
- N1BEE NOS is distributed from ChowdaNet BBS, (401)331-0334, Fido 1:323/120,
- from which it is hatched into the Ham Distribution Net, which is part of
- the Fidonet File Backbone. A complete set of files is also posted to the
- Internet site UCSD.EDU for anonymous FTP. Executables and docs are posted
- for FTP on the New England Amprnet at switch.centma.ampr.org [44.56.0.1] in
- Southboro, MA, and at switch.w1cg-9.ampr.org [44.104.0.2] in Newport, RI.
-
- Because the feature has become available in the new Borland C++ 3.1
- compiler, there is now a 386-specific version, the main advantage of which
- is that it is almost 30K smaller because of the efficient code that can be
- generated for the 386/486. Executables will continue to be named GRINOS.EXE
- for the full version and GRINOS-S.EXE for the small version. GRINOS-X.EXE
- will be added as the 386-specific version. The complete set of distribution
- files is now:
-
- GRIBEE08.ZIP -- source code archive
- GRNOS08.ZIP -- full version EXE package
- GRNOS08S.ZIP -- small version EXE package
- GRNOS08X.ZIP -- 386-specific EXE package
-
- Most users will want the small version, especially if running under
- limited memory on an XT or under DesqView. Users who need advanced features
- (NNTP, netrom, netrom serial, or mailbox forwarding) will have to use the
- larger versions. The 386-specific version is the same as the full version,
- but with the "-3" switch given to the compiler. I am personally running the
- 386-specific version with DRSI hardware; now you know why I made it!
-
- (Late note: the 386-specific version may have problems, possibly
- due to bugs in the Borland tools. If you try it and experience problems,
- please try one of the other versions and let me know what happens.)
-
- The documentation file for PA0GRI 920725v2.0l will serve as
- documentation for N1BEE NOS, except as noted below. This file is named
- GG9207D.ZIP on ChowdaNet BBS and throughout HDN.
-
-
- 2. Serial Handshaking
-
- If you find that NOS is able to send but not receive data with
- an asy TNC, first make sure that the correct IRQ is specified, especially
- if you are using the new facility to chain more than one COM port on the
- same IRQ. If you are having trouble with parameters that worked fine on
- an earlier version of NOS, try explicitly raising the serial handshake
- lines right after the attach command in AUTOEXEC.NOS. To do this for a
- port with interface label "ax0," for example, add the following command
- lines: "param ax0 dtr 1" and "param ax0 rts 1".
-
-
- 3. Netrom Changes
-
- Netrom users will have to change their configuration files which
- have lines of the form "netrom interface <iflabel> <alias> <portqual>",
- where the alias is specified as part of the interface command. The alias
- must now be specified with the command "netrom alias <alias>", and the
- interface command has new syntax "netrom interface <iflabel> <portqual>".
- For example, "netrom interface ax0 IPBEE 192" would now be replaced by
- the two commands "netrom alias IPBEE" and "netrom interface ax0 192".
-
- A fairly serious netrom bug is corrected in this release of N1BEE
- NOS, and my previous advice to set "netrom acktime" to some artificially
- huge value, such as 120000 ms, no longer applies. This workaround is still
- needed in all other versions of NOS, although that should change when this
- bug fix is cycled back into the main PA0GRI release. The default "netrom
- acktime" of 3000 ms is generally appropriate, although I find that 8000 ms
- is slightly better. Some explanation is probably in order here. What the
- "netrom acktime" timer times is the delay after we receive something that
- needs to be acknowledged and when we actually acknowledge it. This delay
- of a few seconds is desirable because netrom works with groups of frames
- which do not need to be acknowledged separately. For example, if we receive
- netrom frames 25, 26, and 27 at once, we only want to acknowledge 27, which
- implies that we are acknowledging all previous frames. If no delay was
- present, we would send an acknowledgement for each frame as it was received.
- The bug that has been fixed was that the timer was not being stopped after
- the acknowledgement was sent, so acknowledgement frames would be generated
- on each expiration of the "netrom acktime" timer, every 3 seconds, without
- regard to whether anything needed to be acknowledged. Obviously, sending
- frames every 3 seconds would cause a lot of problems for the network, and
- the workaround of using a long setting for "netrom acktime" would at least
- prevent NOS from clogging a netrom network, at the expense of very slow
- local performance. (Thanks to WA1PTC, KA1MF, KA1RCI, K5DI, and others for
- reporting the problems which led to this bug being found.)
-
-
- 4. Anonymous Logins
-
- In order to allow anonymous users to log in under any username,
- such as their own callsign, when using ftp or the telnet mailbox, it is
- necessary to have an entry in \FTPUSERS for "univperm". In previous
- releases of N1BEE NOS, unknown usernames not explicitly listed in the
- \FTPUSERS file were mapped to have the same privileges as "anonymous"
- if that was listed in \FTPUSERS. Now, "anonymous" is a legitimate name
- in its own right. One reason for this is to disallow logins from being
- able to send mail as "anonymous," "anon", "guest", and such from the
- telnet mailbox. A typical line to add to \FTPUSERS might be:
- "univperm * /public 3".
-
- Note that there are some new bits in the permission mask in
- \FTPUSERS, which are documented in the main PA0GRI documentation file.
-
-
- 5. POP Clients
-
- If you receive your mail by Post Office Protocol (POP), there are
- significant changes required to your configuration files. NOS now supports
- multiple automatic POP servers for a single client, and also supports the
- enhanced POP3 protocol in addition to maintaining backward compatibility
- with POP2. The most important change is that the old "pop mailhost",
- "pop mailbox", "pop userdata", and "pop timer" commands have now been
- combined into a single command. If your old configuration read:
-
- pop mailhost switch.w1cg-9.ampr.org
- pop mailbox maureen
- pop userdata ka1urw mog
- pop timer 14400
-
- then your new configuration will read:
-
- pop addserver switch.w1cg-9.ampr.org 14400 pop2 maureen ka1urw mog
-
- This means that server switch.w1cg-9.ampr.org will be polled using POP2
- every 14400 seconds (4 hours) for mail addressed to ka1urw@switch.w1cg-9.
- Upon receipt, it will be placed into the local file \SPOOL\MAIL\MAUREEN.TXT.
- A new optional field can be added immediately following the timer count in
- order to restrict polling to certain hours. For example, "1800 00:00-06:30"
- would poll 1800 seconds (30 minutes), but only between midnight and 6:30 am.
-
- Multiple servers are now supported using any combination of POP2 and
- POP3. The postmaster at a POP server can now, for example, put regular mail
- for KA1URW and AMSAT mail for KA1URW into separate accounts, say "ka1urw" and
- "ka1urw-a". Since the mail is physically separated into files which must
- conform to MS-DOS naming restrictions, POP accounts longer than 8 characters
- should not be used. In the above example, POP user ka1urw-a would have mail
- stored on the server in \SPOOL\MAIL\KA1URW-A.TXT; if two POP users are given
- overlapping names, such as "ka1urw-amsat" and "ka1urw-arrl", these would both
- be truncated to the same 8-character filename, and problems would result.
-
- In order to do a "pop kick" the server must now be specified. For
- example, to manually request an immediate poll in the above case, the command
- would be "pop kick switch.w1cg-9". The "pop kick" command will kick off all
- posted listings for the named server; there is no way to kick only one.
-
-
- 6. KISS Mode TNCs
-
- To get most asy TNCs out of KISS mode, you can use the command
- "param ax0 return" (assuming the TNC is on the ax0 interface). Some
- TNCs, usually MFJ, will require the two commands "param ax0 return2"
- and then "param ax0 return".
-
- You should be especially alert for any TNC which does not
- correctly implement KISS mode. Some MFJ and Pac-Comm TNCs will transmit
- on top of another packet station which is being received, which is wrong.
-
-
- 7. Mailbox CC Handling
-
- The PA0GRI code as released causes the mailbox to always send a
- CC to the original addressees list on reply to any message from the mailbox.
- This produces undesirable results, where replying to a message which was
- addressed to "allne" makes the reply also go to "allne," which is usually
- not intended. This is disabled in the N1BEE code, with a new command
- "mbox autocc" added to reenable the original form of operation if desired.
-
-
- 8. TTYlink/Chat Response Change
-
- The ttylink (chat) server has default behavior of throwing the
- local user suddenly into whatever incoming session is generated. This is
- now modified in N1BEE NOS to send a message to the command session (where
- you have the "net>" prompt) that there is an incoming session, but not to
- force the console into it immediately. From the command session, issue
- the "session" command to see what session number has been assigned to the
- incoming chat, and then the "session #" command (where "#" is replaced
- by the appropriate session number) to actually enter the session. To get
- back to the command session from any other session, use the F10 key as
- normal. The disadvantage here is that the message about an incoming chat
- request will not be displayed until the console is in the command session;
- if the console is in some other session, such as an outbound telnet or ftp,
- the message will be waiting to be displayed as soon as the console is
- switched back to the command session. The "correct" behavior of ttylink
- is mostly a matter of personal preference, and this is mine.
-
-
- 9. FTP Service File Length
-
- The FTP server has been modified to send a Unix-like count of
- bytes to be sent before actually sending the file. This will appear at
- the end of the line which begins "150 Opening data connection for...".
- Unlike Unix, the byte count is sent in advance for non-file transfers,
- such as in response to the "dir" command, simply because it was easier
- to code that way. (Thanks to N1GKE for suggesting this idea.)
-
-
- 10. Memory Allocation Issues
-
- The memory allocator in N1BEE NOS has somewhat more extensive
- debugging features than are found in distribution PA0GRI NOS. Detection
- of "overused" errors is possible, where they would not be caught by the
- regular releases. (This is a matter of using the compile-time define
- "Kelvdebug".) Also, "mem debug" defaults enabled. The PA0GRI NOS default
- of 15K for "mem minheap" seems a little excessive, but is left unchanged;
- users of the original "mem minheap" that I wrote into N1BEE NOS in 1991
- might remember that 12K was found to work well. If you had no problems
- with 12K, you should consider experimenting to see how small you can push
- it if coreleft runs too low to let you shell out. If you never shell out,
- as happens under DesqView, "mem minheap" has no effect anyway.
-
- Crashing while shelled out to DOS or the mailer may indicate
- hardware incompatibilities. Try setting "multitask off" to prevent NOS
- from running in background while shelled out. This may also be necessary
- when running in limited memory. Don't overlook the possibility of the
- program running in the shell causing the crash; in particular, BM.EXE will
- not be happy if you are one of those people who never hits the CR key at
- the end of each line. You may also need to increase "mem minheap".
-
- Conventional memory of 640K should be considered a requirement.
- NOS does not make any use of EMS or XMS memory, except insofar as a program
- such as DesqView can convert EMS memory to appear to NOS to be conventional.
-
-
- 11. Laptops, Non-standard Video
-
- Problems running on laptops are usually solved by disabling NOS
- direct screen writing with the "-b" command line option when invoking NOS.
- Laptops also might need to have power saving or "sleep" modes disabled.
-
- Persons who use non-standard video hardware, especially those who
- compensate for visual disability with screen enlargers or voice synthesizers,
- will also likely need the "-b" command line switch. Any user who has trouble
- making NOS work with special hardware needed because of a disability is
- encouraged to contact me.
-
-
- 12. Running with Multitaskers
-
- The DesqView, Windows, and DoubleDOS multitaskers are all supported
- directly by NOS. The second line of output from the "ps" command will show
- if any supported multitasker is detected. Windows users may have to hack
- around in thier *.INI files manually to let NOS control the serial ports.
- With a supported multitasker, you can probably buy some efficiency with
- longer timeslices, since NOS will release the timeslice if it has nothing
- to do; this is trial and error.
-
- Original PA0GRI NOS does not detect that it is running in an OS/2 DOS
- window, and therefore does not gracefully release cycles back to OS/2 as it
- would with a supported multitasker. The efficiency of OS/2 2.0 is such that
- this should never be noticed. However, I have modified chktasker() and
- giveup() in PCGEN.ASM and ps() in KSUBR.C to take into account DOS 5.x or
- OS/2 2.0 DOS emulation. Kludge utilities such as OS2SPEED should no longer
- be necessary. In DOS Settings, IDLE_SECONDS must be set to zero.
-
- Running in a DOS window under OS/2 will likely require the IOPL
- privilege, and may require a DOS VMB for support of some features, such as
- packet drivers. There is a native version of NOS for OS/2 PM distributed
- by Walt Corey, KZ1F @ WA1PHY.#EMA.MA.USA.NA (AX.25 conventional BBS mail),
- kz1f@switch.w1cg-9.ampr.org (SMTP), kz1f@legent.com (Internet), and he also
- has a very impressive PM mailer. If your OS/2 installation is based on asy
- TNCs, you might be better off with Walt's OS/2 releases.
-
-
- 13. Serial Port Speed
-
- A bug is fixed in N1BEE NOS that allows ports connected to KISS
- TNCs to be run faster than 19200 bps. No real TNC will run this quickly,
- but this may prove useful for connecting two computers together where the
- non-NOS machine runs software that does not support SLIP, such as the
- G8BPQ switch. Together with a more general bug fix, serial port speed
- can now be set to the maximum of the hardware, 115200 bps, on any port,
- superseding the previous limitation of 38400 bps. While settable, these
- speeds are not necessarily going to work.
-
-
- 14. Domain Translation
-
- Domain translation, which does not work in the original PA0GRI
- distribution, has been repaired. Also, "domain verbose" is a lot smarter
- and defaults to enabled; it only chops off your own domain suffix from
- other host names. A warning message has been added to the effect that
- domain translation should not be enabled if you are using a real domain
- name server.
-
-
- 15. Domain Name Resolution
-
- The speed of domain name resolution has been substantially improved,
- at the expense of some memory use. Originally, the DOMAIN.TXT file was read
- in blocks of 256 bytes, so that another disk access would be required after
- parsing every few lines. The default block size is now 2048 bytes. Users
- of slow machines should see the greatest improvement from this change. The
- buffers are allocated from the heap while doing a domain name resolution and
- are freed immediately after it is completed, so no net increase in memory
- use is involved. However, it may be difficult for NOS to satisfy requests
- for such large blocks due to memory fragmentation, which would have the
- effect of increasing the amount of memory that is forced to be part of the
- heap instead of core, even if it remains free for allocation. Under such
- circumstances, coreleft could drop so low that NOS will not permit shelling
- out to the mailer. If you have trouble, a new command, "domain diskbuf",
- has been added to allow the size of the buffers to be manually specified;
- the allowed minimum is 256 bytes, and the allowed maximum is 16384 bytes.
-
-
- 16. LZW Compression on SMTP
-
- I have some real reservations about the appropriateness of LZW
- compressed mail on the Amprnet, and I have modified NOS to default to a
- state where LZW compression will be permitted if requested by someone
- trying to send it mail, but will not be requested for outgoing mail. To
- refuse compression requests on inbound mail, set "smtp reclzw off",
- preferably in AUTOEXEC.NOS. To request compression on outbound mail,
- assuming you feel comfortable doing that, set "smtp sendlzw on".
-
- Keep in mind that LZW compression consumes a lot of memory. If
- you have problems related to memory, either being unable to shell out or
- even outright crashing, try disabling LZW in both directions. If a host
- opens an SMTP circuit with you and then disappears leaving an open TCP
- channel, the LZW tables being built from the data stream will stay in
- memory forever until the channel is reset.
-
-
- 17. DRSI Drivers
-
- As of this release, the DRSI driver is unsupported. The generic
- SCC driver is now recommended for DRSI hardware. Keep in mind that I am
- running DRSI hardware myself, and I am seeing significantly better
- performance. Previous problems with the SCC driver have now been fixed,
- especially in that the transmitter will not be keyed when DCD is present.
- Memory usage has been improved also, and a huge number of interrupt queue
- buffers ("mem nibufs") are no longer required; in fact, not only will the
- default 5 buffers work fine, but the buffer size can be safely reduced to
- 1024 ("mem ibufsize") if the SCC rxbuf size is sufficiently small and no
- need to pass very large frames (more than 256 bytes) exists. Obviously,
- trial and error will be needed for each particular set of parameters such
- as TxDelay, Persistence, SlotTime, TxTail, and Wait, but here is the
- excerpt from my AUTOEXEC.NOS file involved in configuring the DRSI card:
-
- #
- mem nibufs 5
- mem ibufsize 1024
- #
- # attach scc <numchips> init <baseaddr> <ofs_nextchip> <Aoff> <Boff> <Dataoff>
- # <intack> <irq> <clksrc> <hwtype>
- attach scc 1 init 0x300 0x10 2 0 1 0 7 p4915200 8
- #
- # attach scc <chan> <mode> <iflabel> <mtu> <speed> <rxbuf>
- attach scc 0 ax25 dr0a 256 d1200 512
- attach scc 1 ax25 dr0b 256 d1200 512
- #
- # SCC:
- param dr0a txd 10
- param dr0a pers 128
- param dr0a slot 10
- param dr0a txt 5
- param dr0a wait 1
- #
- param dr0b txd 10
- param dr0b wait 1
- #
-
-
- 18. Assembler
-
- If you build NOS from my source, you can use an assembler other than
- TASM 3.1, which is bundled with BC++ 3.1. (I used TASM 2.5, which is bundled
- with BC++ 2.0.) TASM 3.1 can be used if lines with defined symbols ("MEMMOD")
- are modified so that they begin with a "%" character; otherwise, it will balk.
-